Machine-readable forms (also referred to herein as “forms”), for example, questionnaires, social security forms, invoices, passports, etc. may be used to collect information. Typically, the information in machine-readable forms is structured in named fields, for example “Name”, “Social Security Number”, “Date”, etc. A machine-readable form may be completed by hand, by a dot-matrix printer, by a typewriter or by other means (for an example of a completed machine readable form, refer to FIG. 2).
One of the steps of processing machine-readable forms is the creation of a form template (also referred to herein as a “template”). A template tells a form processing application where to look for particular types of information on the form to ensure reliable recognition of the entered data (a sample form is provided in FIG. 1). A machine-readable form may include static blocks (i.e. elements on the form that are used to facilitate matching form templates with a scanned image of the form) and fields (e.g., text fields, checkmarks, barcodes, etc.) which should be recognized after matching the form template with the form. The static blocks and fields are indicated by various object demarcations. Template elements within a form template may be created manually in a graphics editor, which is a very labor-intensive process. This problem is compounded given that a separate template has to be created for each variant of machine-readable form.